In general, the functionality of a computer system is achieved using the combination of hardware and software. The hardware includes functionality to execute the instructions defined in the software. The combination of the hardware and the software allows the user to perform various tasks, such as play games, perform word processing applications, perform complicated modeling of a region, design new technologies, and/or perform other such tasks.
One type of software is an application. The application provides the user with the ability to perform the tasks. Applications execute in an execution environment of an operating system. Specifically, the operating system is a type of software that provides an interface between hardware and applications, enforces the sharing of the computer system hardware and software resources, and coordinates the performance of various tasks. Thus, the operating system is a type of software that manages the execution of the computer system.
Execution of the operating system is initiated during a boot process. The following is the typical process to initiate the execution of the operating system when power is provided to the computer system. When power is provided to a computer system, firmware on the computer system starts executing. Firmware is a program that is stored in a fixed location of read only memory (ROM). Because of the fixed location, the processor of the computer system is able to obtain instructions of the firmware from the fixed location when power is provided to the processor.
When executed, the firmware may perform a test of the computer system. During the test, the firmware determines whether any hardware components are non-functioning at the time of the test. The test may not be able to identify a faulty hardware component having intermittent errors if such error-prone component is functioning at the time of the test. For example, the error-prone component may respond at the time of the test even though the error-prone component produced errors both before and after the test. However, if a hardware component is non-functioning at the time of the test, the firmware may disable the hardware component so that the operating system cannot detect the component. Additionally, the firmware may disable components as configured by the user accessing the firmware interface.
Continuing with the initiation of the operating system when powering up the computer system, after performing the check, the firmware starts execution of a program called a boot loader. The boot loader is a program designed to find and initiate execution of the operating system. In order to initiate the execution of the operating system, the boot loader searches for a boot image that includes operating system. Specifically, the boot image includes a root file system with the files of the operating system. When the boot loader finds the boot image, the boot loader loads and transfers control to the kernel of the operating system.